home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / doors / auxed / auxed.c next >
Encoding:
C/C++ Source or Header  |  1992-12-26  |  2.9 KB  |  145 lines

  1. #include <exec/exec.h>
  2. #include <dos/dos.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include "work:romconf/doorheader.h"
  6.  
  7. #define AWAIT_LOGON    0
  8. #define SYSOP_LOGON    1
  9. #define LOCAL_LOGON    2
  10. #define REMOTE_LOGON    3
  11. #define GOODBYE_LOGON    4
  12. #define SUSPEND_LOGON    5
  13. int Whence_The_Logon;
  14. void EditEmacs(char *filename);
  15. int mynode;
  16. char temp[200];
  17. char GSTR3[200];
  18. char GSTR2[200];
  19. #define gu getuserstring
  20. #define sm sendmessage
  21. #define pm prompt
  22. void CloseAux(BPTR tfh);
  23. BPTR OpenAux(void);
  24. void end(void);
  25. void LastCommand(void);
  26. void sr(char *s);
  27. char Path[200];
  28. char EDIT[200];
  29. main(int argc,char *argv[])
  30. {
  31.    FILE *fi;
  32.    register int i;
  33.    if(argc!=2)
  34.    {
  35.       printf(".-----------------------------------------------------.\n",1);
  36.       printf("| Ami-Express AUXED Version 1.0 Written by ByteMaster |\n");
  37.       printf("|     /X Development Team - The Silent Achievers      |\n");
  38.       printf("`-----------------------------------------------------'\n");
  39.       printf("\n");
  40.       printf(" This is a (XIM) for AmiExpress 2.30+\n");
  41.       printf("\n");
  42.       exit(0);
  43.  
  44.    }
  45.    Register(argv[1][0]-'0');
  46.    Whence_The_Logon=GetInfo(BB_LOGONTYPE);
  47.    mynode=argv[1][0]-'0';
  48.    strcpy(Path,argv[0]);
  49.    strcat(Path,".cfg");
  50.    
  51.    gu(temp,BB_MAINLINE);
  52.    sr(temp);
  53.    i=0;
  54.    while(temp[i]!=' ' && temp[i]!='\0') i++;
  55.    while(temp[i]!='\0' && temp[i]==' ') i++; 
  56.    fi=fopen(Path,"r");
  57.    if(fi!=NULL && Whence_The_Logon!=REMOTE_LOGON)
  58.    {
  59.      fgets(Path,80,fi);
  60.      fclose(fi);
  61.      sr(Path);
  62.      sprintf(EDIT,"%s %s",Path,&temp[i]);
  63.      Execute(EDIT,NULL,NULL);
  64.    }
  65.    else
  66.      EditEmacs(&temp[i]);
  67.    ShutDown();
  68.    end();
  69. }
  70. void EditEmacs(char *filename)
  71. {
  72.  FILE *f;
  73.  struct Task *task;
  74.  BPTR fh;
  75.  sprintf(GSTR3,"\tEditEmacs %s\n",filename);
  76.  //CallersLog(GSTR3);
  77.  
  78.  if(f=fopen(filename,"r")) {
  79.      fclose(f);
  80.      sprintf(GSTR3,"ram:Node%dEmacs",mynode);
  81.         if(f=fopen(GSTR3,"w")) {
  82.          BPTR fh;
  83.  
  84.             fprintf(f,"emacs %s\n",filename);
  85.             fprintf(f,"endcli\n");
  86.          fclose(f);
  87.             if(fh=OpenAux()) {
  88.              sm("H",0);
  89.                 //ConPutStr(&Xinfo,"\nUser is using EMACS...");
  90.                 
  91.                  sprintf(GSTR2,"failat 100\nc:execute %s\nendcli\n",GSTR3);
  92.                     Execute(GSTR2,fh,0);
  93.                 CloseAux(fh);
  94.             }
  95.          sprintf(GSTR3,"ram:Node%dEmacs",mynode);
  96.             DeleteFile(GSTR3);
  97.         }
  98.     } else {
  99.      sprintf(GSTR2,"The file %s does not exist!",filename);
  100.         sm("",1);sm(GSTR2,1);
  101.     }
  102. }
  103.  
  104.  
  105. BPTR OpenAux(void)
  106. {
  107.  char str[100];
  108.  BPTR tfh;
  109.  
  110.  if(Whence_The_Logon==REMOTE_LOGON) {
  111.         sprintf(str,"AUX%u:",mynode);
  112.     } else
  113.         sprintf(str,"CNN:S*/0/1/%d/%d/LocalEmacs",GetInfo(BB_SCRWIDTH),GetInfo(BB_SCRHEIGHT)-1);
  114.  
  115.  if(!(tfh=Open(str,MODE_OLDFILE))) {
  116.         sm("",1);sm("The ",0);
  117.         sm(str,0);
  118.         sm(" handler can't be opened!",1);
  119.     }
  120.  return(tfh);
  121. }
  122.  
  123. void CloseAux(BPTR tfh)
  124. {
  125.  Close(tfh);
  126. }
  127.  
  128. void end(void)
  129. {
  130.   exit(0);
  131. }
  132. void LastCommand(void)
  133. {
  134.   sm("",1);
  135. }
  136. void sr(char *s)
  137. {
  138.   register int i;
  139.   i=strlen(s)-1;
  140.   while(i>-1)
  141.   {
  142.     if(*(s+i)<=32) *(s+i)='\0'; else break;
  143.     i--;
  144.   }
  145. }